https://t.me/RX1948
Server : LiteSpeed
System : Linux host 5.15.0-161-generic #171-Ubuntu SMP Sat Oct 11 08:17:01 UTC 2025 x86_64
User : idnco5810 ( 1093)
PHP Version : 8.2.29
Disable Function : NONE
Directory :  /usr/lib/python3/dist-packages/cloudinit/sources/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //usr/lib/python3/dist-packages/cloudinit/sources/__pycache__/DataSourceNoCloud.cpython-310.pyc
o

t��h�>�@s:ddlZddlZddlZddlmZddlmZmZmZm	Z	ddl
mZe�e
�ZGdd�dej�Zddd�Zdd	d
�Zddd�Zd
d�ZGdd�de�ZeejffeejejffgZdd�Ze
dkr�ddlmZejejd�edZe	�e�\Z Z!Z"Z#e$de ���e$de!���e$de"���e$de#���dSdS)�N)�partial)�dmi�	lifecycle�sources�util)�enicsveZdZdZdd�Z�fdd�Zdd�Zdd	�Zed
d��Z	de
fd
d�Zdd�Zdd�Z
dd�Zedd��Z�ZS)�DataSourceNoCloud�NoCloudcCsVtj�||||�d|_tj�|jd�tj�|jd�g|_d|_d|_	d|_
d|_dS)N�nocloud�nocloud-net)�/�file://)r�
DataSource�__init__�seed�os�path�join�seed_dir�	seed_dirs�supported_seed_starts�_network_config�_network_eni��self�sys_cfg�distro�paths�r�E/usr/lib/python3/dist-packages/cloudinit/sources/DataSourceNoCloud.pyrs�
zDataSourceNoCloud.__init__csFt���d|jrd|j�d�nd|jtjkr d|j�d�SdS)z@append seed and dsmode info when they contain non-default values� z[seed=�]�z[dsmode=)�super�__str__r�dsmoder�DSMODE_NETWORK�r��	__class__rrr$&s�������zDataSourceNoCloud.__str__cCs|t�d�}|�t�d��t�d|���}|�t�d|����|�t�d|��tt|�t|�@�}|jdd�|S)Nz	TYPE=vfatzTYPE=iso9660zLABEL=%szLABEL_FATBOOT=%sT)�reverse)r�find_devs_with�extend�upper�lower�list�set�sort)r�label�fslist�
label_list�devlistrrr�_get_devices3s
zDataSourceNoCloud._get_devicescCs�d|jd�}g}idddd�}zi}t�d�}|r*t||�r*|�d�t|d|i�}Wnty;t�t	d�Yd	Swzi}t|�rO|�d
�t|d|i�}Wnty`t�t	d�Yd	Swddgd
dgd�}|j
D]'}ztj|fi|��}|�|�t	�d|�t||�}Wn	t
y�Yqmw|j�d�r�|�d�|jd|dd<d|jvr�d|jvr�t||j�}|�d�dd�}	|j�dd�}
|
du�r6|�|
�D]b}z4t	�d|�z	t�||	|�}Wnt
y�t	�d||
�YWq�wt||�}t	�d|�|�|�Wn,t�y$}z|jtjk�r�WYd}~q�d}~wtj�y5t�t	d|�Yq�w|�s;d	Sd|dv�r�|dd}
d	}|jD]
}|
�|��rY|}n�qM|�se|�|
�d	St�|
�}
tj|
dd�\}}}}t	�d|
�t�|d|g�|d<||d<||d
<|�|
�t�|d|g�|d<|�|d�d�g�|_|jtjk�r�t	�d||j�d	Sd � |�|_!|d|_"|d|_#|d
|_$|d|_%|d�d!�|_&d"S)#Nr
)�instance-idr%r")�	meta-data�	user-data�vendor-data�network-config�system-serial-numberrr8zUnable to parse dmi dataF�cmdlinez!Unable to parse command line datar9r:r;)�required�optionalzUsing seeded data from %s�seedfrom�ds_config_seedfrom�	ds_configcSstj|fi|��S�N)r�pathprefix2dict)�mp�datarrr�_pp2d_callback�sz3DataSourceNoCloud._get_data.<locals>._pp2d_callback�fs_label�cidatazAttempting to use data from %sz)device %s with label=%s not a valid seed.zUsing data from %sz(Failed to mount %s when looking for data)�timeoutzUsing seeded cache data from %sr%z&%s: not claiming datasource, dsmode=%s�,znetwork-interfacesT)'r%r�
read_dmi_data�load_cmdline_data�append�_merge_new_seed�	Exceptionr�logexc�LOGrrD�debug�
ValueError�ds_cfg�getr6�mount_cb�warning�OSError�errno�ENOENT�MountFailedErrorr�
startswith�_log_unusable_seedfrom�sub_dmi_vars�read_seeded�
mergemanydict�_determine_dsmoder�DSMODE_DISABLEDrr�metadata�userdata_raw�vendordata_rawrr)r�defaults�found�mydata�md�serial�pp2d_kwargsr�seededrGr2�dev�er@�	seedfound�proto�md_seed�ud�vd�_rrr�	_get_data?s���

��
���


�


���

����
�


�

���



zDataSourceNoCloud._get_datacCs|jst��r	dnd|_|jS)N�lxdr
)�_platform_typer�is_lxdr'rrr�
platform_type�szDataSourceNoCloud.platform_typer@cC�t�d||j|�dS)�!Stage-specific level and message.zN%s only uses seeds starting with %s - will try to use %s in the network stage.N)rR�infor�rr@rrrr^�s�z(DataSourceNoCloud._log_unusable_seedfromcCstjS)z=Return unknown when 'cloud-name' key is absent from metadata.)r�METADATA_UNKNOWNr'rrr�_get_cloud_name�sz!DataSourceNoCloud._get_cloud_namecCs$|j�d�r	d}nd}d||jfS)z/Return the subplatform metadata source details.z/devzconfig-diskzseed-dirz%s (%s))rr])r�subplatform_typerrr�_get_subplatform�sz"DataSourceNoCloud._get_subplatformcCs:|��}|sdSt|d|jg�}t|d�}|sdS||kS)Nr)�dirs)�get_instance_id�getattrr�_quick_read_instance_id)rr�currentr��quick_idrrr�check_instance_id�s
z#DataSourceNoCloud.check_instance_idcCs8|jdur|jdurtjdddd�t�|j�|_|jS)Nz$Eni network configuration in NoCloudz24.3z,You can use network v1 or network v2 instead��
deprecated�deprecated_version�
extra_message)rrr�	deprecater�convert_eni_datar'rrr�network_configs

�z DataSourceNoCloud.network_config)�__name__�
__module__�__qualname__�dsnamerr$r6rv�propertyrz�strr^r�r�r�r��
__classcell__rrr(rrs


rc	Cs�|durg}d}i}t|�r||vr||S|D].}|durqztj|dgd�}t�|d�}|r<||vr<||WSWqtyFYqwdS)Nr7r8)r>)rMrrD�	load_yamlrT)r��iid_key�fill�drFrjrrrr�s&��r�cCs�dtjfdtjfg}|D]9\}}t|||�sqd|vrdS|�d�}|r?|�d�r2tj|d<dS|�d�r<tj|d<dS||d<dSdS)	Nz
ds=nocloudzds=nocloud-netr%Tr@�zhttp://zhttps://zftp://zftps://)r
rF)r�DSMODE_LOCALr&�parse_cmdline_datarVr])r�r=�pairs�idstrr%r@rrrrM.s*�
�

�
�rMc	Cs�|durt��}d|}d||vsd||vsdSd}|��D]
}|�|�r-|�dd�}q |d�d�}t|�dkrB|dd�}nd}d	d
dd�}|D]+}|dkrSqLz
|�dd�\}	}
Wn
tyj|}	d}
Ynw|	|vrs||	}	|
||	<qLd
S)Nz %s z %s;Fr"�=��;rzlocal-hostnamer7r@)�h�i�sT)r�get_cmdline�splitr]�lenrP)�ds_idr�r=�argline�tok�tmp�kvpairs�s2l�item�k�vrrrr�Os8
��
r�cCs�|��}|�di�}t|dt�st�|d�}t�|d|g�|d<|�d�r2t�|�d��|d<d|vr<|d|d<d|vrF|d|d<|S)Nr8r;r9r:)�copyrV�
isinstance�dictrr�ra)�currm�ret�newmdrrrrOws
rOc@s*eZdZdd�Zdefdd�Zdd�ZdS)	�DataSourceNoCloudNetcCst�||||�d|_dS)Nr�)rrrrrrrr�s
zDataSourceNoCloudNet.__init__r@cCr{)r|z6%s only uses seeds starting with %s - %s is not valid.N)rRrXrr~rrrr^�s�z+DataSourceNoCloudNet._log_unusable_seedfromcCs�ttjdddd�}dt��kr|�dSt�t�d�pd���}||j	��dfvr8t
�d	|�|dkr6|�dS|j�
d
i��
di��
d�rNt
�d
|�dSdS)z�Check dmi and kernel command line for dsname

        NoCloud historically used "nocloud-net" as its dsname
        for network timeframe (DEP_NETWORK), which supports http(s) urls.
        For backwards compatiblity, check for that dsname.
        z!The 'nocloud-net' datasource namez24.1zgUse 'nocloud' instead, which uses the seedfrom protocolscheme (http// or file://) to decide how to run.r�rTr<r"zJMachine is configured by dmi serial number to run on single datasource %s.�
datasourcer	r@zMMachine is configured by system configuration to run on single datasource %s.F)rrr�r�
parse_cmdline�parse_cmdline_or_dmirrLr.r�rRrSrrV)r�log_deprecatedrkrrr�	ds_detect�s@�
�����zDataSourceNoCloudNet.ds_detectN)r�r�r�rr�r^r�rrrrr��s		r�cCst�|t�SrC)r�list_from_depends�datasources)�dependsrrr�get_datasource_list�sr��__main__)�argv)�levelr�zseeded: zud: zvd: z	network: rC)%rZ�loggingr�	functoolsr�	cloudinitrrrr�
cloudinit.netr�	getLoggerr�rRrrr�rMr�rOr��DEP_FILESYSTEM�DEP_NETWORKr�r��sysr��basicConfig�DEBUGr@r`rrrsrt�network�printrrrr�<module>s:




!(
E��

https://t.me/RX1948 - 2025